package com.itany.corejava.code08_集合.set集合;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;

/**
 * @author MissChen
 * @date 2024年03月05日 10:51
 */
public class Test01_HashSet {
    public static void main(String[] args) {
        // test01();
        // test02();
        test03();
    }
    public static void test01(){
        //方式一:使用默认容量16与默认加载因子0.75
        HashSet<String> set=new HashSet<>();
        set.add("admin");
        set.add("alice");
        System.out.println(set);

        //方式二，将另一个Collection转换成HashSet
        List<Integer> list= Arrays.asList(1,4,6,8,4,6,10);
        System.out.println(list);

        // Set中的元素是不可重复的，因此，转换后，会自动去除重复
        HashSet<Integer> set2=new HashSet<>(list);
        System.out.println(set2);

        //方式三:使用自定义的初始容量与默认加载因子
        HashSet<String> set3=new HashSet<>(10);

        //方式四:使用自定义的初始容量与自定义加载因子
        HashSet<String> set4=new HashSet<>(10,0.5F);



    }

    public static void test02(){
        HashSet<Integer> set=new HashSet<>();
        System.out.println("集合是否为空："+set.isEmpty());
        set.add(1);
        set.add(3);
        set.add(4);
        System.out.println("集合是否为空："+set.isEmpty());
        System.out.println("集合中元素的数量:"+set.size());
        System.out.println(set.remove(1));
        System.out.println(set.remove("aaa"));
        System.out.println("集合中是否包含3："+set.contains(3));
        System.out.println("清空前:"+set);
        set.clear();
        System.out.println("清空后:"+set);
    }

    public static void test03(){
        HashSet<Integer> set=new HashSet<>();
        set.add(24);
        set.add(1);
        set.add(4);
        set.add(3);
        set.add(14);

        //由于set没有索引，因此不支持普通for循环
        //方式一:使用增强for循环进行遍历
        for(Integer num:set){
            System.out.print(num+"\t");
        }
        System.out.println();
        //方式二:使用Iterator迭代器
        Iterator<Integer> it=set.iterator();
        while(it.hasNext()){
            System.out.print(it.next()+"\t");
        }

    }
}
